package com.bd.scm.domain.dto.leave;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 请假信息-移动端
 * @author yufc
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "请假信息-移动端")
public class LeaveAppDto implements Serializable {

    @ApiModelProperty( value = "单据ID", notes = "单据ID", dataType = "Long", position = 1)
    private Long orderId;

    @ApiModelProperty(value="")
    private String orderNo;

    @ApiModelProperty(value="")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startDate;

    @ApiModelProperty(value="")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDate;

    @ApiModelProperty(value="")
    private String remark;

    @ApiModelProperty(value="")
    private String submitterNo;

    @ApiModelProperty(value="")
    private String submitterName;

    @ApiModelProperty(value="")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitterTime;

    @ApiModelProperty(value="")
    private Integer status;

    @ApiModelProperty(value="")
    private String statusName;

    @ApiModelProperty(value="")
    private String lastApproverNo;

    @ApiModelProperty(value="")
    private String lastApproverName;

    @ApiModelProperty(value="")
    private String removeNo;

    @ApiModelProperty(value="")
    private String removeName;

    @ApiModelProperty(value="")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date removeTime;

    @ApiModelProperty(value="")
    private String returnRemark;

    @ApiModelProperty(value="")
    private String beginTime;

    @ApiModelProperty(value="")
    private String endTime;

    @ApiModelProperty(value="")
    private Long userSerial;

    @ApiModelProperty(value="")
    private String userNo;

    @ApiModelProperty(value="")
    private String userName;

    @ApiModelProperty(value="")
    private String depName;

    /**
     * 请假时长（分钟）
     */
    @ApiModelProperty(value="")
    private Integer jsjg;

    /**
     * 请假时长（小时）
     */
    private String jsjgHour;

    @ApiModelProperty(value="")
    private String leaveTypeName;

    @ApiModelProperty(value="")
    private String approver1No;

    @ApiModelProperty(value="")
    private String approver1Name;

    @ApiModelProperty(value="")
    private String approver2No;

    @ApiModelProperty(value="")
    private String approver2Name;

    @ApiModelProperty( value = "明细数据ID", notes = "明细数据ID", dataType = "Integer", position = 21)
    private Integer detailId;

    @ApiModelProperty(value="")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date approvalTime;

    @TableField(value = "submitter_id")
    private Long submitterId;

    private static final long serialVersionUID = 1L;
}